// Nick Nissen, Mads Jakobsen og Jesper Larsen
package hc.andersen.paraden;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONObject;

import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


public class NextBookingActivity extends Activity {

    String GlobalMødested;
    String sogeid;



    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.nextbooking);




        try{

            Bundle bundle = this.getIntent().getExtras();
            if (bundle != null)
            {
                sogeid = bundle.getString("sogeid");
            }
            else
            {
                Map<String,String> userData = DataHelper.HentBrugerData(getBaseContext());
                sogeid = userData.get("id");
            }

            JSONObject json = DataHelper.getHttpGetRequest("http://epanum.dk/Teater/ProfilService.svc/Booking/"+sogeid);

                     // grabbing the booking objektet
                    JSONObject booking = json.getJSONObject("HentNasteBookingResult");
                    String sted = booking.getString("Sted");
                    GlobalMødested = booking.getString("MødeSted");

            String[] strMonths = new String[]{
                    "Jan",
                    "Feb",
                    "Mar",
                    "Apr",
                    "Maj",
                    "Jun",
                    "Jul",
                    "Aug",
                    "Sep",
                    "Okt",
                    "Nov",
                    "Dec"
            };


                    Calendar datoDate = DataHelper.JsonDatetoDate(booking.getString("Dato"));
                    String dato = datoDate.get(Calendar.DATE)+" "+strMonths[datoDate.get(Calendar.MONTH)]+" "+datoDate.get(Calendar.YEAR);

                    Calendar startTid = DataHelper.JsonDatetoDate(booking.getString("StartTid"));
                    String starttidspunkt = startTid.get(Calendar.HOUR_OF_DAY)+":"+startTid.get(Calendar.MINUTE);

                    Calendar slutTid = DataHelper.JsonDatetoDate(booking.getString("SlutTid"));
                    String sluttidspunkt = slutTid.get(Calendar.HOUR_OF_DAY)+":"+slutTid.get(Calendar.MINUTE);

                    String tante = booking.getString("Tante");
                    String sjaler = booking.getString("Sjaler");
                    String mad = booking.getString("Mad");


            JSONArray rolleArr = booking.getJSONArray("RolleProfilAss");

            Map<String,String> rolleProfilAss = new HashMap<String, String>();


            for(int i=0;i<rolleArr.length();i++){

                JSONObject rolleprofilass = rolleArr.getJSONObject(i);

                JSONObject rolle = rolleprofilass.getJSONObject("Rolle");
                JSONObject profil = rolleprofilass.getJSONObject("Spillerprofil");

                String profilNavn = profil.getString("Navn");
                String rolleNavn = rolle.getString("Navn");

                rolleProfilAss.put(rolleNavn,profilNavn);
            }

            TextView tv = (TextView)findViewById(R.id.Sted_Navn);
            tv.setText(sted);

            tv = (TextView)findViewById(R.id.Mødested_Navn);
            tv.setText(GlobalMødested);

            tv = (TextView)findViewById(R.id.Dato_Navn);
            tv.setText(dato);

            tv = (TextView)findViewById(R.id.Start_Navn);
            tv.setText(starttidspunkt);

            tv = (TextView)findViewById(R.id.Slut_Navn);
            tv.setText(sluttidspunkt);



            tv = (TextView)findViewById(R.id.Tante_Navn);
            if (tante == "false")
            {
                tv.setText("Nej");
            }
            else
            {
                tv.setText("Ja");
            }

            tv = (TextView)findViewById(R.id.Sjaler_Navn);
            if (sjaler == "false")
            {
                tv.setText("Nej");
            }
            else
            {
                tv.setText("Ja");
            }

            tv = (TextView)findViewById(R.id.Mad_Navn);
            if (mad == "false")
            {
            tv.setText("Nej");
            }
            else
            {
             tv.setText("Ja");
            }


            tv = (TextView)findViewById(R.id.Kejser_Navn);
            tv.setText(rolleProfilAss.get("Kejser"));

            tv = (TextView)findViewById(R.id.Page1_Navn);
            tv.setText(rolleProfilAss.get("Page1"));

            tv = (TextView)findViewById(R.id.Page2_Navn);
            tv.setText(rolleProfilAss.get("Page2"));

            tv = (TextView)findViewById(R.id.Svinedreng_Navn);
            tv.setText(rolleProfilAss.get("Svinedreng"));

            tv = (TextView)findViewById(R.id.Svineprinsesse_Navn);
            tv.setText(rolleProfilAss.get("Svineprinsesse"));

            tv = (TextView)findViewById(R.id.Hofdame1_Navn);
            tv.setText(rolleProfilAss.get("Hofdame1"));

            tv = (TextView)findViewById(R.id.Hofdame2_Navn);
            tv.setText(rolleProfilAss.get("Hofdame2"));

            tv = (TextView)findViewById(R.id.Skorstensfejer_Navn);
            tv.setText(rolleProfilAss.get("Skorstensfejer"));

            tv = (TextView)findViewById(R.id.Soldat_Navn);
            tv.setText(rolleProfilAss.get("Soldat"));

            tv = (TextView)findViewById(R.id.Heks_Navn);
            tv.setText(rolleProfilAss.get("Heks"));

            tv = (TextView)findViewById(R.id.Hyrdinde_Navn);
            tv.setText(rolleProfilAss.get("Hyrdinde"));

            tv = (TextView)findViewById(R.id.Tommelise_Navn);
            tv.setText(rolleProfilAss.get("Tommelise"));

            tv = (TextView)findViewById(R.id.Nattergal_Navn);
            tv.setText(rolleProfilAss.get("Nattergal"));

            tv = (TextView)findViewById(R.id.OleLukøje_Navn);
            tv.setText(rolleProfilAss.get("OleLukøje"));

            tv = (TextView)findViewById(R.id.Ærteprinsesse_Navn);
            tv.setText(rolleProfilAss.get("Ærteprinsesse"));

            tv = (TextView)findViewById(R.id.Svovlstikpige_Navn);
            tv.setText(rolleProfilAss.get("Svovlstikpige"));

            tv = (TextView)findViewById(R.id.Klodshans_Navn);
            tv.setText(rolleProfilAss.get("Klodshans"));

            tv = (TextView)findViewById(R.id.Klodsprinsesse_Navn);
            tv.setText(rolleProfilAss.get("Klodsprinsesse"));

            tv = (TextView)findViewById(R.id.Fatter_Mutter_Navn);
            tv.setText(rolleProfilAss.get("FatterMutter"));

            tv = (TextView)findViewById(R.id.Trommesoldat_Navn);
            tv.setText(rolleProfilAss.get("Trommesoldat"));

            tv = (TextView)findViewById(R.id.Lyd_Navn);
            tv.setText(rolleProfilAss.get("Lyd"));

            Button btnNavigation = (Button)findViewById(R.id.btnNavigation);
            btnNavigation.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    navigation(view, GlobalMødested);
                }
            });

            if(DataHelper.getDialog() != null && DataHelper.getDialog().isShowing())
                DataHelper.getDialog().dismiss();
        }
           catch (Exception e)
           {
                Toast.makeText(this, "Fejl, kunne ikke indlæse data"+e.getMessage(),Toast.LENGTH_LONG);
            }
     }

    public void navigation(View v, String navigationString)
    {

        Uri location = Uri.parse("google.navigation:q= "+ navigationString);
        Intent mapIntent = new Intent(Intent.ACTION_VIEW, location);

        PackageManager packageManager = getPackageManager();
        List<ResolveInfo> activities = packageManager.queryIntentActivities(mapIntent, 0);
        boolean isIntentSafe = activities.size() > 0;

        if (isIntentSafe == true)
        {
            startActivity(mapIntent);
        }
        else
        {
            Toast.makeText(this, "Der er ikke noget navigations-program på telefonen. Installér venligst et!", 100000).show();
        }
    }

}